/*
 * 文件名：StrUtil.java
 * 版权：Copyright 2000-2013 广东汇卡商务. 
 * 描述： RECK V001 汇卡新清算系统
 * 修改人： 吴依优
 * 修改时间：Jan 15, 2014
 * 修改内容：新增 
 * 修改人： 
 * 修改时间：
 * 修改内容：
 */
package cn.hicard.util;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
 * 
 * @author  吴依优
 * @version RECK V001
 * @since   RECK V001
 */
public class StrUtil
{
    /**
     * 半角转全角
     * 〈功能详细描述〉
     * @param input
     * @return
     */
    public static String ToSBC(String input)
    {
        char c[] = input.toCharArray();
        for (int i = 0; i < c.length; i++)
        {
            if (c[i] == ' ')
            {
                c[i] = '\u3000';
            }
            else if (c[i] < '\177')
            {
                c[i] = (char)(c[i] + 65248);
                
            }
        }
        return new String(c);
    }
    
    /**
     * 根据传进来的int进行前面补零、
     * 除去小数点
     * @param data
     * @param count
     * @return
     */
    public static String add0(String data, int count)
    {
        data = data.replace(".", "");//除去小数点
        if (data.length() >= count)
        {
            return data;
        }
        else
        {
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < (count - data.length()); i++)
            {
                sb.append("0");
            }
            
            return sb.toString() + data;
        }
    }
    
    /**
     * long类型金额格式化
     * @param d
     * @return
     */
    public static String formatMoney(long d)
    {
        
        DecimalFormat format = (DecimalFormat)NumberFormat.getPercentInstance();
        format.applyPattern("###########0.00");
        double number = (double)d;
        return format.format(number/100);
    }
    
    /**
     * 两字符串数字做加法
     * 〈功能详细描述〉
     * @param a
     * @param b
     * @return
     */
    public static String add(String a, String b)
    {
      BigDecimal bd = new BigDecimal(a);
      bd = bd.add(new BigDecimal(b));
      return bd.toString();
    }
    
    /**
     * Object转String
     * @param obj
     * @return
     */
    public static String toString(Object obj)
    {
        return obj == null ? "" : obj.toString();
    }
    
    /**
     * 两数做减法
     * @param v1
     * @param v2
     * @return
     */
    public static String sub(String v1, String v2)
    {
        BigDecimal b1 = new BigDecimal(v1);
        BigDecimal b2 = new BigDecimal(v2);
        return b1.subtract(b2).toString();
    }
}
